05.Go Function
Table of Contents
function 定义
func <function name> (<parameter name> <parameter type>) (<return type>) {
<function code>
}
func show() { // 无参数, 无返回值, 对应内容不填
Println("no parameter and no return")
}
func add(x int, y int) int { // 参数和类型要对应
return x + y
}
func self(x, y int) (int, int) { // 同类型参数合并, 多返回值, 返回值类型需要括号
return x, y
}
- func: 函数定义使用的关键字
- function name: 函数名, 同变量使用
- parameter name: 参数名, 参数名与类型成对存在
- parameter type: 参数类型, 多个同类型参数可只写 1 次
- return type: 返回值的类型
- golang 强制规定左花括号必须和 func 同一行
参数与返回值
golang 允许不定数量的参数 golang 允许多个返回值
func sum(numList ...int) int { // 设置可变参数, 可变参数通常作为最后一个参数
res := 0
for _, i := range numList { // 可变参数本质是一个切片
res += i
}
return res
}
Println(sum(1,2,3,4))
> 10
func calc(x, y int) (sum, sub int) { // 指定多个返回值
sum := x + y
sub = x - y
return
}
func add(x, y int) (int, int) { // 多个返回值时, 返回值类型需要带括号
return x+1, y+1
}